package server

import (
	"gitee.com/crack007/goose/gslog"
	"gitee.com/crack007/goose/gsutil"
)

type DefaultSessionHandle struct {
}

func (x *DefaultSessionHandle) OnHandshake(session *Session) bool {
	panic("需要实现此逻辑")
}

func (x *DefaultSessionHandle) OnConflict(session *Session, newSession *Session) *Session {
	return newSession
}

func (x *DefaultSessionHandle) OnIdleTimeout(session *Session) {
	gslog.Debug("Trigger OnIdleTimeout")
}

func (x *DefaultSessionHandle) OnReadIdleTimeout(session *Session) {
	gslog.Debug("Trigger OnReadIdleTimeout")
}

func (x *DefaultSessionHandle) OnWriteIdleTimeout(session *Session) {
	gslog.Debug("Trigger OnWriteIdleTimeout")
}

func (x *DefaultSessionHandle) Init(session *Session) {

}

func (x *DefaultSessionHandle) OnConnect(session *Session) {
}

func (x *DefaultSessionHandle) OnMessage(session *Session, data []byte) {
}

func (x *DefaultSessionHandle) OnClose(session *Session, err error) {
}

func (x *DefaultSessionHandle) GetSessionId(session *Session) int64 {
	ip := int64(gsutil.IpUtil.IpToInt(session.RemoteIp))
	port := int64(session.RemotePort)
	return ip<<32 | port
}
